package com.itheima.atomic;

import java.util.concurrent.atomic.AtomicInteger;

public class Demo01 {

    public static void main(String[] args) {
        AtomicInteger i = new AtomicInteger(10);
        //int get():   			 				获取值
        int i1 = i.get();
        System.out.println(i1);
        System.out.println(i.getAndIncrement());//++在后
        System.out.println(i.get());
        System.out.println(i.incrementAndGet());//++在前
        System.out.println(i.get());
        //int getAndIncrement():      			 以原子方式将当前值加1，注意，这里返回的是自增前的值。
        //int incrementAndGet():     				 以原子方式将当前值加1，注意，这里返回的是自增后的值。
        //int addAndGet(int data):				 以原子方式将输入的数值与实例中的值（AtomicInteger里的value）相加，并返回结果。
        System.out.println(i.addAndGet(10));//22

        //int getAndSet(int value):   			 以原子方式设置为newValue的值，并返回旧值。
        System.out.println(i.getAndAdd(10));
        System.out.println(i.get());

        System.out.println(i.getAndSet(500));
        System.out.println(i.get());
        System.out.println(i.decrementAndGet());
        System.out.println(i.getAndDecrement());
        System.out.println(i.get());

    }


}
